System and method for calibrating a touch sensor

ABSTRACT

A method for calibrating a touch sensor includes: at a calibration system during a calibration routine, applying a probe, at a target selection force, to a sequence of locations on a touch sensor surface of a touch sensor; at the touch sensor, capturing a sequence of touch images representing magnitudes of forces detected on the touch sensor surface during the calibration routine; fusing the sequence of touch images into a response map representing magnitudes of forces detected on the touch sensor surface by the touch sensor responsive to application of the target selection force on the touch sensor surface by the probe during the calibration routine; generating a force compensation map defining threshold forces for detecting selections at the target selection force on the touch sensor surface based on the response map.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation of U.S. Non-Provisional patentapplication Ser. No. 17/207,546, filed on 19 Mar. 2021, which claimspriority to U.S. Provisional Patent Application No. 62/992,077, filed on19 Mar. 2020, which is incorporated in its entirety by this reference.

This Application is related to U.S. patent application Ser. No.14/499,001, filed on 26 Sep. 2014, and to U.S. patent application Ser.No. 17/191,636, filed on 3 Mar. 2021, each of which is incorporated inits entirety by this reference.

TECHNICAL FIELD

This invention relates generally to the field of touch sensors and morespecifically to new and useful calibration methods in the field of touchsensors.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a flowchart representation of a first method;

FIG. 2 is a flowchart representation of one variation of the firstmethod;

FIG. 3 is a flowchart representation of one variation of the firstmethod;

FIGS. 4A and 4B are a flow chart representation of one variation of thefirst method;

FIG. 5 is a flowchart representation of a second method; and

FIG. 6 is a flowchart representation of a third method.

DESCRIPTION OF THE EMBODIMENTS

The following description of embodiments of the invention is notintended to limit the invention to these embodiments but rather toenable a person skilled in the art to make and use this invention.Variations, configurations, implementations, example implementations,and examples described herein are optional and are not exclusive to thevariations, configurations, implementations, example implementations,and examples they describe. The invention described herein can includeany and all permutations of these variations, configurations,implementations, example implementations, and examples.

1. First Method

As shown in FIG. 1, a first method S100 for calibrating a touch sensorincludes: at a calibration system during a calibration routine, applyinga probe, at a target selection force, to a sequence of locations on atouch sensor surface of a touch sensor in Block S102; at the touchsensor, capturing a sequence of touch images representing magnitudes offorces detected on the touch sensor surface during the calibrationroutine in Block S110; fusing the sequence of touch images into aresponse map representing magnitudes of forces detected on the touchsensor surface by the touch sensor responsive to application of thetarget selection force on the touch sensor surface by the probe duringthe calibration routine in Block S120; and generating a forcecompensation map defining threshold forces for detecting selections atthe target selection force on the touch sensor surface based on theresponse map in Block S130. The first method S100 also includes, duringoperation, at the touch sensor: capturing a first touch imagerepresenting magnitudes of forces detected on the touch sensor surfacein Block S140; based on the first touch image, detecting a first inputat a first location on the touch sensor surface in Block S142 anddetecting a first force magnitude of the first input in Block S144; and,in response the first force magnitude exceeding a first threshold forceassigned to the first location by the force compensation map,registering a first selection at the first location on the touch sensorsurface in Block S146.

One variation of the first method S100 shown in FIGS. 2 and 3 includes:at a calibration system during a calibration routine, applying a probe,at a reference force, to a sequence of locations on a touch sensorsurface of a touch sensor in Block S102; at the touch sensor, capturinga sequence of touch images representing magnitudes of forces detected onthe touch sensor surface during the calibration routine in Block S110;fusing the sequence of touch images into a response map representingmagnitudes of forces detected on the touch sensor surface by the touchsensor responsive to application of the reference force on the touchsensor surface by the probe during the calibration routine in BlockS120; and generating a force compensation map defining correctionfunctions for calibrating forces detected on the touch sensor surfacebased on the response map in Block S130. This variation of the firstmethod S100 also includes, during operation, at the touch sensor:capturing a first touch image representing magnitudes of forces detectedon the touch sensor surface in Block S140; based on the first touchimage, detecting a first input at a first location on the touch sensorsurface in Block S142 and detecting a first uncorrected force magnitudeof the first input in Block S144; and calculating a first forcemagnitude of the first input based on the first uncorrected forcemagnitude and a first correction function assigned to the first locationby the force compensation map in Block S146.

1.1 Applications

Generally, the first method S100 can be executed by a touch sensor—inconjunction with a calibration system—to calibrate input forcethresholds across an area of the touch sensor and thus compensate formanufacturing variance and manufacturing defects within the touch sensorin order to enable more accurate and repeatable detection and responsesto inputs across the touch sensor surface as a function of appliedforce.

In particular, the touch sensor is configured to detect a location and aforce magnitude of an input applied over a touch sensor surface based onchanges in resistance between drive electrode and sense electrodepairs—arranged beneath a force-sensitive layer exhibiting changes inlocal contact (or bulk) resistance responsive to applied force—within asensor array. However, manufacturing inconsistencies may yield: localvariations in the thickness of the force-sensitive layer; variations insurface profile of the force-sensitive layer abutting drive electrodeand sense electrode pairs arranged across a substrate; flatnessdeviations across the substrate; air caught between the substrate andthe force-sensitive layer; lifting traces edges along drive electrodesand sense electrodes; and/or dust or particulate between the substrateand the force-sensitive layer that inhibit contact between driveelectrode and sense electrode pairs and the force-sensitive layer; etc.Such manufacturing inconsistencies and defects may produce non-linear orunpredictable relationships between resistance across drive electrodeand sense electrode pairs and force magnitudes of input applied toadjacent regions of the touch sensor surface. For example, material andgeometry inconsistencies across the touch sensor can: yield a firstchange in detected resistance between a first drive electrode and senseelectrode pair responsive to application of a first input of a firstforce magnitude on the touch sensor surface over this first driveelectrode and sense electrode pair; and a second change inresistance—different from the first change in resistance—between asecond drive electrode and sense electrode pair responsive toapplication of a second input of this same force magnitude on the touchsensor surface over this second drive electrode and sense electrodepair. In this example, the touch sensor (e.g., a controller within thetouch sensor) can: detect different voltages across the first and secondsense electrode pairs when the first and second drive electrodes aredriven to the same reference potentials during application of the firstand second inputs on the touch sensor surface; and interpret differentforce magnitudes at the first and second inputs based on the differentvoltages detected at the first and second sense electrodes. Accordingly,the touch sensor may achieve inconsistent and inaccurate interpretationof inputs of the same force magnitude at different locations on thetouch sensor surface.

1.1.1 Force Correction Functions

The touch sensor can therefore execute Blocks of the first method S100in cooperation with the calibration system (e.g., prior to deployment ofthe touch sensor in a user-facing application) in order: to record asequence of voltage (or resistance) values across drive electrode andsense electrode pairs in the sensor array during application of inputsof known (or controlled, predefined) calibration force magnitudes acrossthe touch sensor surface; and to generate and store a force compensationmap (or calibration image, calibration force lookup table, etc.) thatrepresents relationships between true force magnitudes of inputs appliedto the touch sensor surface and force magnitudes of these inputsinterpreted by the touch sensor, such as in the form of linear scalingfunctions, nonlinear scaling functions, or force offsets for individualdrive electrode and sense electrode pairs or clusters of drive electrodeand sense electrode pairs across the sensor array, as shown in FIGS. 2and 3.

Later, during operation, the touch sensor can: read voltages (orresistances) from the array of drive electrode and sense electrode pairsduring a scan cycle; interpret uncorrected force magnitudes of inputsapplied to the touch sensor surface during this scan cycle based onthese voltages (or resistances); access the force compensation map fromlocal memory; scale, offset, or otherwise correct (or “normalize”) theseuncorrected force magnitudes according to the force compensation map;and then output the locations and corrected force magnitudes of inputsthus detected on the touch sensor surface, such as in the form of acorrected touch image.

1.1.2 Corrected Selection Force Thresholds

In another example shown in FIG. 1, the touch sensor can be configured:to interpret an input of force magnitude greater than 1.68 Newtons (orapproximately 165 grams) on the touch sensor surface as a “click” (or“selection”) input; and to respond to this click input by executing afeedback cycle, such as by vibrating the touch sensor surface and/oroutputting an audible “click” sound. However, manufacturing variationsand defects can cause the touch sensor to interpret a range of forcemagnitudes across the touch sensor surface as equal to the targetselection force of 1.68 Newtons, such as from as little at 1.0 Newton toas much at 2.5 Newtons.

Therefore, the calibration system can apply a calibrated targetselection force of 1.68 Newtons (i.e., approximately 165 grams) to thetouch sensor surface during a calibration routine. The touch sensor (orthe calibration system) can then execute Blocks of the first method S100to: calculate uncorrected force magnitudes of inputs applied across thetouch sensor surface during the calibration routine based on voltage (orresistance) changes read from the sense electrodes; and generate a forcecompensation map that sets these uncorrected forces as the thresholdforces for detecting click inputs at corresponding locations across thetouch sensor surface.

Later during operation, the touch sensor can: detect an input of a firstuncorrected force magnitude at a first location on the touch sensorsurface based on a change in voltage (or resolution) detected at a firstsense electrode (or a first cluster of sense electrodes) in the sensorarray; retrieve a first threshold force for detecting a click input atthe first location from the force compensation map; and then selectivelyregister the input as a click input and execute a feedback cycleaccordingly if the first uncorrected force magnitude exceeds the firstthreshold force.

1.1.3 Software-Level Calibration

The touch sensor can therefore cooperate with the calibration system toexecute Blocks of the first method S100 to: compensate and correct formanufacturing defects and inconsistences that may affect interpretationof force magnitudes of inputs on the touch sensor surface; increase theaccuracy of force values and/or force distributions detected across thetouch sensor surface; improve the consistency of force-dependent hapticfeedback issued by the touch sensor; and improve the consistency offorce-dependent command functions executed by the touch sensor surface(or by a connected or integrated device) in response to inputs detectedon the touch sensor surface.

Furthermore, by scaling or otherwise correcting such force inputsbetween collection of raw voltage (or resistance) data and generation ofa touch input during a scan cycle based on the force compensation map,the touch sensor can also exhibit greater tolerance to manufacturingdefects, inconsistencies, and/or materials standards, thereby reducingmanufacturing costs and/or increasing manufacturing yield withoutsignificant reduction in accuracy or consistency force magnitudesinterpreted and handled by the touch sensor.

The first method S100 is described herein as executed by the touchsensor, which can be subsequently and/or concurrently integrated into orconnected to an electronic device, such as a laptop, tablet, orsmartphone to detect and characterize inputs to these devices. However,Blocks of the first method S100 can additionally or alternatively beexecuted by a calibration system, a computer network, and/or a remotecomputing system.

1.2 Touch Sensor

As shown in FIG. 1, the touch sensor that includes: a grid array ofdrive electrode and sense electrode pairs patterned across a substrate(e.g., a rigid fiberglass PCB); a controller configured to drive thearray of drive electrodes (e.g., to a reference voltage potential) andto read voltages (or other electrical signals) from the array of senseelectrodes; and a force-sensitive layer interposed between the touchsensor surface and the array of drive electrode and sense electrodepairs, defining a force-sensitive material that exhibits variations inlocal contact resistance across drive electrode and sense electrodepairs (or variations in local bulk resistance across drive electrode andsense electrode pairs) as a function of force applied to the touchsensor surface.

In this configuration, application of a localized force to the touchsensor surface drives the force-sensitive layer into contact withadjacent drive electrode and sense electrode pairs in the sensor array,thereby: locally reducing the contact resistance between theforce-sensitive layer and these adjacent sense electrodes; decreasingthe resistances across these drive electrode and sense electrode pairs(e.g., manifesting as increased voltages at the sense electrodes whenthe drive electrodes are driven to a reference potential) as a functionof (e.g., proportional to) the magnitude of the applied force.

Accordingly, the controller is configured to: drive each column of driveelectrodes in the sensor array to a reference potential (e.g., whilefloating all other columns of drive electrodes); read (e.g., record,sample) a set of voltages from corresponding rows of sense electrodes;and transform the set of voltages into a force image (or a “pressuremap”) that represents force magnitudes applied across the touch sensorsurface and carried into each drive electrode and sense electrode pairin the sensor array during a scan cycle.

1.3 Calibration System

As shown in FIG. 1, the calibration system includes: a control module; atouch sensor receptacle configured to receive and locate the touchsensor; a probe; a boom supporting the probe and configured to drive theprobe toward the touch sensor surface of the touch sensor; an actuationsubsystem configured to scan the probe laterally and longitudinallyacross the touch sensor surface; and a force (or pressure) sensorconfigured to detect a force magnitude of the probe applied normal tothe touch sensor surface.

In one implementation, the probe defines a rigid, flat, circular contactsurface approximately one square centimeter in area. In anotherimplementation, the probe includes a silicone depressor defining ageometry approximating an adult human index finger. In yet anotherimplementation, the probe defines a tapered geometry approximating awriting stylus.

1.3.1 Calibration Routine

During a calibration routine, once the touch sensor is loaded into thereceptacle, the control module can retrieve a target selection forceassigned for the touch sensor surface, such as a target selection forceof 1.68 Newtons (or approximately 165 grams) in order to calibrate (or“tune”) the touch sensor to detect “click” inputs of force magnitudesgreater than this target selection force across the touch sensor surfaceand to respond accordingly (e.g., by vibrating the touch sensor during ahaptic feedback cycle). The control module can also load a calibrationpath for the touch sensor, such as a preplanned serpentine orboustrophedonic path defining linear path sections offset according to atarget calibration resolution (e.g., 10% of the total width of the touchsensor surface) and inset from the perimeter of the touch sensor surface(e.g., by 5% of the width of the touch sensor surface to produce nineparallel and offset linear path sections of the calibration path). Thecontrol module can then: advance the boom to drive the probe downwardinto contact with the touch sensor surface of the touch sensor; andimplement closed-loop controls to drive the force magnitude applied bythe probe against the touch sensor surface up to the target selectionforce. Upon reaching this target selection force, the control modulecan: drive the actuation subsystem to sweep the probe across thecalibration path; and implement closed-loop controls to maintain theforce applied by the probe to the touch sensor surface at (e.g., within1% of) the target selection force. (Alternatively, the control modulecan drive the actuation subsystem to sweep the receptacle and the touchsensor along the calibration path relative to the probe.) Upon reachingthe conclusion of the calibration path, the control module can retractthe probe and release the touch sensor.

In one example, during this calibration routine, the control moduledrives the actuation subsystem at a continuous speed that traverses thecenter of the probe over one drive electrode and sense electrode pair inthe touch sensor per scan cycle executed by the touch sensor (i.e.,given a sampling rate of the touch sensor). Accordingly, the touchsensor can capture one touch image representing application of thecenter of the probe over each drive electrode and sense electrode pair.The touch sensor can then derive a force compensation map from these rawtouch images in Blocks S120 and S130, as described below.

In another example, during this calibration routine, the control moduledrives the actuation subsystem at a continuous speed that moves thecenter of the probe from located directly over one drive electrode andsense electrode pair in the touch sensor to located directly over anadjacent drive electrode and sense electrode pair over multiple (e.g.,three) consecutive scan cycles executed by the touch sensor.Accordingly, the touch sensor can capture multiple touch imagesrepresenting application of the center of the probe near each driveelectrode and sense electrode pair. For each drive electrode and senseelectrode pair along the calibration path of the probe, the touch sensorcan: identify a subset of touch images the depict a region of the probelocated over the drive electrode and sense electrode pair; calculate aweight of each touch image in the subset based on a distance from thedrive electrode and sense electrode pair to a center of the proberepresented in the image; and calculate a composite touch imagerepresenting the force response of this drive electrode and senseelectrode pair based on a weighted average of these touch images. Thetouch sensor can then derive a force compensation map from thesecomposite touch images in Blocks S120 and S130, as described below.

In yet another example, during this calibration routine, the controlmodule: intermittently drives the actuation subsystem through a sequenceof waypoints along the calibration while maintaining contact between theprobe and the touch sensor surface; and dwells the probe against thetouch sensor surface at the target selection force at each waypoint.Accordingly, for each waypoint, the touch sensor can: capture multipletouch images representing application of the probe at the waypoint;select one touch image exhibiting minimum noise (e.g., jitter, bounce)in this set of touch images; and store this touch image as representingapplication of the probe at the target selection force over an adjacentdrive electrode and sense electrode pair. The touch sensor can thenderive a force compensation map from these select touch images in BlocksS120 and S130, as described below.

In a similar implementation, during this calibration routine, thecontrol module sequentially: drives the actuation to locate the probeover a waypoint; advances the boom downward to drive the probe intocontact with the touch sensor surface up to the target selection force;retracts the boom to release the probe from the touch sensor surface;drives the actuation to locate the probe over a next waypoint; andrepeats this process for each remaining waypoint along the calibrationpath. Accordingly, for each waypoint, the touch sensor can: capturemultiple touch images representing application of the probe at thewaypoint; select one touch image in this set of touch images exhibitinga maximum or peak force; and store this touch image as representingapplication of the probe at the target selection force over an adjacentdrive electrode and sense electrode pair. The touch sensor can thenderive a force compensation map from these select touch images in BlocksS120 and S130, as described below.

However, the calibration system can drive the probe against the touchsensor surface in any other way, along any other calibration path, andaccording to any other loading schema.

1.3.2 Multiple Probes

In one variation, the calibration system includes multiple discrete andoffset probes, each supported by one boom (e.g., one linear actuator)and coupled to one force (or pressure) sensor. In this variation, thecalibration system can implement the foregoing methods and techniques toconcurrently drive the set of probes into contact with the touch sensorsurface at the target selection force, such as along contiguous segmentsof the calibration path or at discrete groups of waypoints across thetouch sensor surface. For example, the calibration system can includeten probes located at a common, fixed pitch distance spanning the widthof the touch sensor surface; accordingly, the calibration system cansimultaneously sweep the ten probes linearly along a single, contiguouslinear calibration path across the touch sensor surface.

However, the calibration system can include any other quantity orarrangement of probes and can sweep these probes across the touch sensorsurface according to any other calibration path.

1.4 Calibration Images and Corrected Selection Threshold

Block S110 of the first method S100 recites, at the touch sensor,capturing a sequence of touch images representing magnitudes of forcesdetected on the touch sensor surface during the calibration routine; andBlock S120 of the first method S100 recites fusing the sequence of touchimages into a response map representing magnitudes of forces detected onthe touch sensor surface by the touch sensor responsive to applicationof the target selection force on the touch sensor surface by the probeduring the calibration routine.

Generally, as the calibration system depresses the probe against thetouch sensor surface at the target selection force during thecalibration routine, the touch sensor can: serially drive the driveelectrodes in the sensor array; read sensor values (e.g., resistances,voltages) from the set of sense electrodes in the sensor array; convertthese sensor values into force magnitudes carried by corresponding driveelectrode and sense electrode pairs during the scan cycle (e.g., basedon a stored common force model that defines a relationship between senseelectrode voltage and applied force for each sense electrode in thesensor array); store these force magnitudes in a touch imagerepresenting the entire touch sensor surface during the scan cycle; andrepeat this process for each subsequence scan cycle during thecalibration routine in Block S110, as shown in FIGS. 1 and 4A.

In Block S120, the touch sensor then compiles these touch images into aresponse map that represents force magnitudes detected on the touchsensor surface responsive to application of the target selection forceacross the touch sensor surface, as shown in FIGS. 1 and 4B.

In one implementation, during a scan cycle within the calibrationroutine, the touch sensor generates a touch image containing an array ofpixels containing sensor values read from the array of drive electrodeand sense electrode pairs during the scan cycle and representing forcemagnitudes carried by the array of drive electrode and sense electrodepairs during a scan cycle. The touch sensor then: detects an input onthe touch sensor surface during this scan cycle based on a cluster ofpixels in the touch image that contain values deviating from baselinevalues stored for corresponding drive electrode and sense electrodepairs in the sensor array (e.g., baseline voltage or resistance valuesthat represent absence of a localized input applied to the touch sensorsurface over these drive electrode and sense electrode pairs);calculates a center of the input at the spatial center, the spatialcentroid, or the peak-force pixel in this cluster of pixels; calculatesan uncorrected total force magnitude of the input on the touch sensorsurface during this scan cycle based on a combination (e.g., a sum) ofsensor values contained in this cluster of pixels; and stores theuncorrected total force magnitude in a pixel—in the responsemap—representing a location on the touch sensor surface nearest thedetected center of the input. The touch sensor then repeats this processfor each other scan cycle completed during the calibration routine topopulate the response map with a set of pixels containing total forcemagnitudes detected at corresponding locations across the touch sensorsurface responsive to application to the target selection force on thetouch sensor surface at these locations.

1.4.1 Force Compensation Map

Block S130 of the first method S100 recites generating a forcecompensation map defining threshold forces for detecting selections atthe target selection force on the touch sensor surface based on theresponse map. Generally, in Block S130, the touch sensor can: interpretforce magnitudes (or representative values, such as sense electrodevoltage or force-sensitive layer contact resistance) detected by driveelectrode and sense electrode pairs in the sensor array that correspondto application of the target selection force at corresponding (e.g.,adjacent, cospatial) locations on the touch sensor surface; and storethese force magnitudes as threshold forces for detecting inputs at thetarget selection force at corresponding locations across the touchsensor surface, as shown in FIGS. 1 and 4B.

For example, the touch sensor can: implement a common, fixed force modelto transform resistance or voltage values read from the drive electrodeand sense electrode pairs during scan cycles, within the calibrationroutine, into force magnitudes carried into these drive electrode andsense electrode pairs during these scan cycles; store these forcemagnitudes in touch images; compile these force-based touch images intoa force-based response map; and directly store this force-based responsemap as the force compensation map in Block S130 such that the forcecompensation map defines uncorrected force magnitudes that correspond toapplication of the target selection force at discrete locations acrossthe touch sensor surface.

Alternatively, the touch sensor can: calculate a force offset, a scalar(i.e., linear) force correction function, or a nonlinear forcecorrection function to convert the detected force magnitude of an inputat a location on the touch sensor surface to a calibrated (or “true”)force magnitude based on the response map; write this force offset,scalar (i.e., linear) force correction function, or a nonlinear forcecorrection function to a corresponding pixel or region of the forcecompensation map; and repeat this process for other pixels or regionsrepresented in the response map, as described below.

In a similar example, during a scan cycle, the touch sensor can: drive aset of drive electrodes in the touch sensor to a reference voltage; reada set of sense voltages from a set of sense electrodes in the touchsensor, wherein each sense electrode passes a voltage proportional tothe reference voltage and a local contact resistance of theforce-sensitive layer against the sense electrode, and wherein theforce-sensitive layer exhibits changes in local contact resistanceagainst the sense electrode as a function of force applied to the touchsensor surface; and then compile the set of sense voltages into a touchimage for the scan cycle. In this example, the touch sensor can thenrepresent magnitudes of voltages passed by the set of senseelectrodes—responsive to application of the target selection force onthe touch sensor surface by the probe during the calibration routine—inpixels representing corresponding drive electrode and sense electrodepairs in a response map. The touch sensor can then generate a forcecompensation map that defines magnitudes of voltages—carried over fromthe response map—as threshold voltages for detecting inputs of forcemagnitudes greater than the target selection at corresponding locationson the touch sensor surface. More specifically, in this example, thetouch sensor can: generate a voltage-based response map; and directlystore this voltage-based response map as the force compensation map inBlock S130 such that the force compensation map defines uncorrectedvoltage magnitudes that correspond to application of the targetselection force at discrete locations across the touch sensor surface.

Alternatively, the touch sensor can: calculate a voltage offset, ascalar (i.e., linear) voltage correction function, or a nonlinearvoltage correction function to convert the detected voltage of an inputat a location on the touch sensor surface to a calibrated (or “true”)voltage based on the response map; write this voltage offset, scalar(i.e., linear) voltage correction function, or nonlinear voltagecorrection function to a corresponding pixel or region of the forcecompensation map; and repeat this process for other pixels or regionsrepresented in the response map, as described below.

(Additionally or alternatively, the touch sensor can: store thesevoltage offsets, scalar (i.e., linear) voltage correction functions, ornonlinear voltage correction functions in a point cloud or other, morecompact data container; and recall all or parts of this point cloudother data container to correct force magnitudes of inputs on the touchsensor surface during operation.)

1.4.2 Interpolation

In one variation in which the calibration path defines parallelcalibration path segments offset by greater than a pitch offset betweenadjacent rows (or columns) of drive electrode and sense electrode pairs,the touch sensor may capture touch images—during the calibrationroutine—that represent detected force magnitudes at fewer than all driveelectrode and sense electrode pairs in the touch sensor. Therefore, thetouch sensor can: execute the foregoing methods and techniques tocalculate an uncorrected total force magnitude at a subset of driveelectrode and sense electrode pairs when the calibration system drivesthe probe to the target selection force over (or very near) this subsetof drive electrode and sense electrode pairs; and then interpolateuncorrected total force magnitudes between this subset of driveelectrode and sense electrode pairs to predict total force magnitudethat the touch sensor may detect at the remaining drive electrode andsense electrode pairs responsive to application of the target selectionforce on the touch sensor surface over (or very near) these other driveelectrode and sense electrode pairs, as shown in FIGS. 1, 4A, and 4B.

In one example, the calibration system draws the probe along acontinuous boustrophedonic (e.g., serpentine) path across the touchsensor surface during the calibration routine. The touch sensor theninitializes a sparse response map and implements methods and techniquesdescribed above to: detect an input—on the touch sensorsurface—represented in a set of pixels in a first touch image capturedduring a scan cycle during the calibration routine; calculate a locationof the input based on the set of pixels in the first touch image (e.g.,a centroid of the set of pixels, a location of pixel in the cluster ofpixels containing a peak force); calculate an uncorrected total forcemagnitude of the input based on a combination of values contained in theset of pixels; and store the uncorrected total force magnitude in afirst pixel in the sparse response map nearest the location of theinput. The touch sensor repeats this process for other touch imagescaptured by the touch sensor during the calibration routine.

In this example, the touch sensor then interpolates between theuncorrected total force magnitudes represented in pixels in the sparseresponse map to generate a dense response map representing predictedtotal force magnitudes of inputs—at the target selection force—appliedto locations on the touch sensor surface between segments of theboustrophedonic path.

The touch sensor can then implement methods and techniques describedabove to store these uncorrected total force magnitudes and thesepredicted total force magnitudes contained in pixels in the denseresponse map as threshold forces—for detecting inputs of forcemagnitudes greater than the target selection force at correspondinglocations on the touch sensor surface—in the force compensation map.

1.4.3 Local Calibration

In the foregoing implementation, the touch sensor can locally executethe foregoing process to locally generate the force compensation mapbased on: touch images captured during the calibration routine; and thetarget selection force, such as preloaded in memory at the touch sensoror received from the calibration system during the calibration routine.

For example, the touch sensor can: initiate the calibration routine inresponse to receipt of a calibration command from the calibrationsystem; download a magnitude of the target selection force from thecalibration system, such as over a wired or wireless connection;implement methods and techniques described above to locally generate theforce compensation map based on the response map and the magnitude ofthe target selection force; and then store the force compensation map inlocal memory.

Conversely, the touch sensor can capture touch images during thecalibration routine and then upload these touch images to thecalibration system (or other local or remote computer system). Thecalibration system (or other local or remote computer system) can thenimplement methods and techniques described above to generate the forcecompensation map for the touch sensor and then download the forcecompensation map to the touch sensor, which then stores this forcecompensation map in local memory.

1.4.4 Operation with Corrected Selection Threshold

The first method S100 further includes: capturing a first touch imagerepresenting magnitudes of forces detected on the touch sensor surfacein Block S140; based on the first touch image, detecting a first inputat a first location on the touch sensor surface in Block S142 anddetecting a first force magnitude of the first input in Block S144; and,in response the first force magnitude exceeding a first threshold forceassigned to the first location by the force compensation map,registering a first selection at the first location on the touch sensorsurface in Block S146. Generally, in Block S140, S142, S144, and S146,the touch sensor can: detect inputs on the touch sensor surface; deriveuncorrected force magnitudes of these inputs; correct the forcemagnitudes of these inputs based on the force compensation map in orderto identify inputs of force magnitudes exceeding the target selectionforce; and selectively respond to these “click” inputs accordingly, asshown in FIG. 1.

In one implementation, the touch sensor: sequentially drives each columnof drive electrodes in the sensor array to a reference; sequentiallyreads a set of voltages from corresponding rows of sense electrodes inthe sensor array; and transforms the set of voltages into a forceimage—that represents force magnitudes applied across the touch sensorsurface and carried into each drive electrode and sense electrode pairin the sensor array during a scan cycle—based on a common, fixed forcemodel for all drive electrode and sense electrode pairs in the sensorarray.

In this implementation, the touch sensor can then: detect a first inputon the touch sensor surface during this scan cycle based on a firstcluster of pixels in the first touch image containing values (e.g.,force magnitudes) that deviate from corresponding baseline values (e.g.,null force magnitudes); and calculate a first location of the firstinput based on the first cluster of pixels, such as at a spatial centeror centroid of the first cluster of pixels or at a locationcorresponding to a peak force represented in the first cluster ofpixels. Furthermore, the touch sensor can: calculate a first uncorrectedforce magnitude of the first input based on a combination (e.g., a sum)of values (e.g., force magnitudes) contained in the first cluster ofpixels; query the force compensation map for a first threshold value(e.g., a threshold uncorrected force magnitude) assigned to the firstlocation; and compare the first uncorrected force magnitude of the firstinput to the first threshold value. Thus, if the first uncorrected forcemagnitude of the first input is less than the first threshold value, thetouch sensor can confirm that the force magnitude of the first input isless than the target selection force. However, if the first uncorrectedforce magnitude of the first input equals or exceeds the first thresholdvalue, the touch sensor can: confirm that the force magnitude of thefirst input meets or exceeds the target selection force; register afirst selection (or a “click” input) at the first location on the touchsensor surface; and then execute a haptic feedback cycle, such as byactuating a vibrator to vibrate the touch sensor surface and/ortriggering an audio driver to output an audible “click” sound.

In a similar implementation, the touch sensor: sequentially drives eachcolumn of drive electrodes in the sensor array to a reference;sequentially reads a set of voltages from corresponding rows of senseelectrodes in the sensor array; and stores these voltages in a sequenceof touch images.

In this implementation, the touch sensor can then: detect a first inputon the touch sensor surface during this scan cycle based on a firstcluster of pixels in the first touch image containing voltage valuesthat deviate from corresponding baseline voltage values; and calculate afirst location of the first input based on the first cluster of pixels,such as at a spatial center or centroid of the first cluster of pixelsor at a location corresponding to a peak voltage value represented inthe first cluster of pixels. Furthermore, the touch sensor can:calculate a first uncorrected voltage total for the first input based ona combination (e.g., a sum) of voltage values contained in the firstcluster of pixels; query the force compensation map for a firstthreshold voltage total assigned to the first location; and compare thefirst uncorrected voltage value of the first input to the first voltagetotal. Thus, if the first uncorrected voltage total for the first inputis less than the first threshold voltage total, the touch sensor canconfirm that the force magnitude of the first input is less than thetarget selection force. However, if the first uncorrected voltage totalof the first input equals or exceeds the first threshold voltage total,the touch sensor can: confirm that the force magnitude of the firstinput meets or exceeds the target selection force; register a firstselection (or a “click” input) at the first location on the touch sensorsurface; and then execute a haptic feedback cycle, such as by actuatinga vibrator to vibrate the touch sensor surface and/or triggering anaudio driver to output an audible “click” sound.

1.4.5 Multiple Corrected Selection Thresholds

In one variation, the calibration system drives the probe across thetouch sensor surface at multiple target forces during a calibrationroutine, and the touch sensor (or the calibration system, etc.)generates a force compensation map that defines one uncorrected forcemagnitude for each target force at each input location (e.g., over eachdrive electrode and sense electrode pair) on the touch sensor surface.

For example, the calibration system can execute the foregoing methodsand techniques to drive the probe against the touch sensor surface at afirst target selection force (e.g., 1.68 Newtons for a “single-click,”“light-click,” or “left-click” input) and to sweep the probe across thetouch sensor surface (e.g., along the preplanned calibration path)during a first segment of the calibration routine. The touch sensor canimplement methods and techniques described above to: capture a first setof touch images during this first segment of the calibration routine;generate a first response map based on this first set of touch images;and populate the force compensation map with a first set of uncorrectedforce magnitudes—carried over from the first response map—thatcorrespond to application of the first target selection force atdiscrete locations across the touch sensor surface.

In this example, the calibration system can repeat this process to drivethe probe against the touch sensor surface at a second target selectionforce (e.g., 2.29 Newtons for a “double-click,” “deep-click,” or “rightclick” input) and to sweep the probe across the touch sensor surface(e.g., along the preplanned calibration path) during a second segment ofthe calibration routine. The touch sensor can implement methods andtechniques described above to: capture a second set of touch imagesduring this second segment of the calibration routine; generate a secondresponse map based on this second set of touch images; and populate theforce compensation map with a second set of uncorrected forcemagnitudes—carried over from the second response map—that correspond toapplication of the second target selection force at discrete locationsacross the touch sensor surface.

Later, during operation, the touch sensor can implement methods andtechniques described above to: drive and scan the drive electrode andsense electrode pairs; generate a touch image based on values read fromthe sense electrodes; and detect an input on the touch sensor surface ata first location and of a first uncorrected force magnitude based onvalues contained in the touch image. Accordingly, the touch sensor canquery the force compensation map for a first threshold value (e.g., athreshold uncorrected force magnitude) corresponding to the first targetselection force and a second threshold value corresponding to the secondtarget selection force assigned to the first location. If the firstuncorrected force magnitude of the first input is less than the firstthreshold value, the touch sensor can confirm that the force magnitudeof the first input is less than the first and second target selectionforces. However, if the first uncorrected force magnitude of the firstinput equals or exceeds the first threshold value but is less than thesecond threshold value, the touch sensor can: confirm that the firstinput is of a first input type associated with the first targetselection force (e.g., a “single-click,” “light-click,” or “left-click”input type); register the first input type at the first location on thetouch sensor surface; and then execute a first haptic feedback cycle forthe first input type, such as by actuating a vibrator to vibrate thetouch sensor surface at a first amplitude over a first time duration.Furthermore, if the first uncorrected force magnitude of the first inputequals or exceeds the second threshold value, the touch sensor can:confirm that the first input is of a second input type associated withthe second target selection force (e.g., a “double-click,” “deep-click,”or “right-click” input type); register the first input type at the firstlocation on the touch sensor surface; and then execute a second hapticfeedback cycle for the second input type, such as by actuating thevibrator to vibrate the touch sensor surface at a second amplitudegreater than the first amplitude and/or over a second time durationgreater than the first time duration.

1.5 Offset Function

In one variation shown in FIG. 2, rather than populate the forcecompensation map with threshold values for detecting inputs—of forcemagnitudes greater than the target selection force—on the touch sensorsurface based on the values contained in the response map, the touchsensor can populate the force compensation map with values thatrepresent force offsets between: the uncorrected force magnitudes ofinputs detected at discrete locations on the touch sensor surface duringthe calibration routine; and the known force magnitudes of inputsapplied to these discrete locations by the calibration system during thecalibration routine (e.g., the target selection force).

In one implementation, the touch sensor executes methods and techniquesdescribed above to: capture a touch image during the calibrationroutine; detect the location and uncorrected total force magnitude of aninput on the touch sensor surface during this scan cycle based on valuescontained in this touch image; repeat this process during subsequentscan cycle during the calibration routine; and assemble the locationsand uncorrected total force magnitudes of these inputs into a responsemap. Then, for each pixel in the response map, the touch sensor can:calculate a force offset between the target selection force applied tothe touch sensor surface over this drive electrode and sense electrodepair in the sensor array during the calibration routine and theuncorrected total force magnitude stored in this pixel; and write thisforce offset (e.g., an “offset correct function”) to a correspondingposition in the force compensation map.

Then, during operation, the touch sensor can implement methods andtechniques described above to execute a scan cycle and generate a touchimage representing uncorrected force magnitudes detected across thetouch sensor surface during the scan cycle. The touch sensor can then:sum the touch image and the force compensation map to generate acorrected touch image containing normalized (or “corrected”) forcemagnitudes across the touch sensor surface; detect a first input on thetouch sensor surface based on values contained in a first cluster ofpixels in the corrected touch image; calculated a corrected forcemagnitude of the first input based on a combination of values containedin the first cluster of pixels in the corrected touch image; calculate acentroid of the first input, at a first location on the touch sensorsurface, based on the first cluster of pixels; and then register aselection input at the first location in response to the corrected forcemagnitude exceeding the target selection force.

1.5.1 Ground Truth Applied Force

In this variation, the calibration system can also: track a sequence offorce magnitudes applied to the touch sensor surface by the probe duringthe calibration routine; and generate a ground truth input maprepresenting the sequence of force magnitudes—that is, the “true” forcemagnitudes applied at known locations across the touch sensor surfaceduring the calibration routine, which may deviate from the targetselection force (e.g., by as much as 1%, 5%).

Accordingly, the touch sensor can execute methods and techniquesdescribed above to: capture a touch image during the calibrationroutine; detect the location and uncorrected total force magnitude of aninput on the touch sensor surface during this scan cycle based on valuescontained in this touch image; repeat this process during subsequentscan cycle during the calibration routine; and assemble the locationsand uncorrected total force magnitudes of these inputs into a responsemap. Then, for each pixel in the response map, the touch sensor can:extract a true force magnitude—applied to a location on touch sensorsurface corresponding to this pixel—from the ground truth input map;calculate a force offset between the true force magnitude and theuncorrected total force magnitude stored in this pixel; and write thisforce offset (e.g., an “offset correct function”) to a correspondingposition in the force compensation map.

1.5.1.1 Alignment

In this variation, the calibration system and the touch sensor can alsocooperate to align the ground truth input map and the response mapbefore fusing this into the force compensation map.

In one implementation, during an alignment routine before or after thecalibration routine, the calibration system applies the probe to a setof target alignment locatios—offset according to an alignmentconstellation within a calibration system coordinate system—on the touchsensor surface. During this alignment routine, the touch sensor capturesa set of alignment images that represent a set of detected alignmentlocations detected on the touch sensor surface within a touch sensorcoordinate system. The touch sensor (or the calibration system, theremote computer system) can then: calculate a transform that projectsthe set of target alignment locations in the calibration systemcoordinate system onto the set of detected alignment locations in thetouch sensor coordinate system; apply the transform to the ground truthinput map to generate an aligned ground truth input map; and thengenerate the force compensation map based on differences betweenmagnitudes of forces represented in the response map and cospatial forcemagnitudes represented in the aligned ground truth input map.

1.5.2 Interpolation

As described above, the calibration system can execute a calibrationpath that traverses only a subset of the drive electrode and senseelectrode pairs in the sensor array. Accordingly, the touch sensor canimplement the foregoing methods and techniques to calculate a sparseforce compensation map that contains force offsets calculated for thissubset of drive electrode and sense electrode pairs based on touchimages captured during the calibration routine. The touch sensor canthen: interpolate between these force offsets to derive force offsetsfor the remaining drive electrode and sense electrode pairs in sensorarray; and compile these derived and interpolated force offsets into onecomplete (or “dense”) force compensation map.

1.6 Scalar Correction Function

In another variation shown in FIG. 3, rather than populate the forcecompensation map with threshold values for detecting inputs of forcemagnitudes greater than the target selection force on the touch sensorsurface or force offset values, the touch sensor can populate the forcecompensation map with scalar values (or “scalar coefficients”) thatscale: uncorrected force magnitudes of inputs detected at discretelocations on the touch sensor surface during the calibration routine; tothe known force magnitudes of inputs applied to these discrete locationsby the calibration system during the calibration routine (e.g., areference force that may differ from a target selection force describedabove).

In one implementation, the touch sensor executes methods and techniquesdescribed above to generate a response map based on touch imagescaptured during the calibration routine. Then, for each pixel in theresponse map, the touch sensor can: calculate a scalar coefficient basedon (e.g., equal to) a ratio of the reference force to the uncorrectedtotal force magnitude stored in the pixel; and store this scalarcoefficient (i.e., a scalar correction function) in a correspondingposition (e.g., pixel) in the force compensation map.

Then, during operation, the touch sensor can implement methods andtechniques described above to execute a scan cycle and generate a touchimage representing uncorrected force magnitudes detected across thetouch sensor surface during the scan cycle. The touch sensor can then:multiply a first force magnitude represented at a first location in thetouch image by a first scalar coefficient stored in a correspondingfirst position in the force compensation map to calculate a correctedfirst force magnitude for the first location; write this first forcemagnitude to a force-corrected touch image; and repeat this process foreach other force magnitude represented in the touch image in order tocomplete the force-corrected touch image. The touch sensor can thenimplement methods and techniques described above to detect an input inthe force-corrected touch image; calculate a corrected total forcemagnitude of the input based on corrected force magnitudes contained inthe force-corrected touch image; and then register the input as a“click” input if the corrected total force magnitude of the inputexceeds the target selection force.

Furthermore, in this implementation, the touch sensor can selectivelyapply scalar coefficients stored in the force compensation map tocalculate corrected force magnitudes of inputs across the touch sensorsurface. In particular, because the force compensation map wasoriginally generated according to a particular calibration force appliedby the calibration system during the calibration routine, the touchsensor can: apply greater weight to a scalar coefficient—stored in theforce compensation map and corresponding to a particular location on thetouch sensor surface—as the force magnitude of an input applied to thetouch sensor surface at the particular location approaches thecalibration force; and vice versa in order to avoid introducingartifacts in detected force magnitudes at force magnitudes that are muchless and much greater than the calibration force. For example, duringthe foregoing scan cycle, the touch sensor can: extract the first forcemagnitude from the first location in the (uncorrected) touch image;calculate an uncorrected weight value proportional to a differencebetween the first force magnitude and the calibration force applied tothe touch sensor surface by the calibration system during thecalibration routine; calculate an corrected weight value inverselyproportional to the difference between the first force magnitude and thecalibration force; calculate a combination of [the first force magnitudemultiplied by the uncorrected weight value] and [the first forcemagnitude multiplied by the corrected weight value and the first scalarcoefficient]; and store this combination at the total correct force atthe first location in the force-corrected touch image.

Alternatively, during operation, the touch sensor can implement methodsand techniques described above to: generate a touch image representinguncorrected force magnitudes detected across the touch sensor surfaceduring a scan cycle; detect a location of the input based on this touchimage; and calculate an uncorrected total force magnitude of this inputbased on the touch image. The touch sensor can then: retrieve a firstscalar coefficient from a first position—corresponding to the firstlocation—in the force compensation map; multiply the uncorrected totalforce magnitude of the input by the first scalar coefficient tocalculate a corrected total force magnitude of the input; and thenregister a selection input at the first location in response to thecorrected total force magnitude exceeding the target selection force.

1.6.1 Ground Truth Applied Force

In this variation, the calibration system can also implement methods andtechniques described above to generate a ground truth input maprepresenting “true” force magnitudes applied at known locations acrossthe touch sensor surface during the calibration routine.

Accordingly, the touch sensor can implement methods and techniquessimilar to those described above to generate a response map based ontouch images captured during the calibration routine. The touch sensorcan then: extract a first true force magnitude applied to a firstlocation on the touch sensor surface during the calibration routine;calculate a first scalar coefficient based on (e.g., equal to) a firstratio of the first true force magnitude to a first uncorrected totalforce magnitude stored in a first pixel in the response map; write thisfirst scalar coefficient to a first position (e.g., a first pixel) inthe force compensation map; and repeat this process for each other pixelcontained in the response map to complete the force compensation mapbased on the “true” force magnitudes applied to the touch sensor surfaceduring the calibration routine.

1.6.2 Interpolation

As described above, the calibration system can execute a calibrationpath that traverses only a subset of the drive electrode and senseelectrode pairs in the sensor array. Accordingly, the touch sensor canimplement the foregoing methods and techniques to calculate a sparseforce compensation map that contains scalar coefficients calculated forthis subset of drive electrode and sense electrode pairs based on touchimages captured during the calibration routine. The touch sensor canthen: interpolate between these scalar coefficients to derive scalarcoefficients for the remaining drive electrode and sense electrode pairsin sensor array; and compile these derived and interpolated scalarcoefficients into one complete (or “dense”) force compensation map.

1.7 Nonlinear Correction Function

In another variation, the calibration system applies multiple calibratedreference forces to locations across the touch sensor surface during thecalibration routine; and the touch sensor (or the calibration system,the remote computer system) generates nonlinear correction functionsthat map uncorrected force magnitudes interpreted from data read fromthe sensor array to corrected (or “calibrated”) force magnitudes acrossa range of force magnitudes.

In one implementation, the calibration system implements methods andtechniques described above to drive the probe against the touch sensorsurface at a first reference force (e.g., 0.1 Newtons) and to sweep theprobe across the touch sensor surface during a first segment of thecalibration routine. The touch sensor can implement methods andtechniques described above to: capture a first set of touch imagesduring this first segment of the calibration routine; and generate afirst response map based on this first set of touch images. The touchsensor can: calculate a first coefficient based on a ratio of the firstreference force to a first uncorrected total force magnitude stored in afirst pixel in the first response map; and repeat this process for eachother pixel in the first response map to generate a first matrix offirst coefficients for the sensor array. The calibration system can thendrive the probe against the touch sensor surface at a second referenceforce (e.g., 2.0 Newtons) and sweep the probe across the touch sensorsurface during a second segment of the calibration routine. Accordingly,the touch sensor can: capture a second set of touch images during thissecond segment of the calibration routine; and generate a secondresponse map based on this second set of touch images. The touch sensorcan then: calculate a second coefficient based on a ratio of the secondreference force to a second uncorrected total force magnitude stored ina first pixel in the second response map; and repeat this process foreach other pixel in the second response map to generate a second matrixof second coefficients for the sensor array. The touch sensor (or thecalibration system, the remote computer system) can then: combine thefirst coefficient at a first position in the first matrix and the secondcoefficient at the first position in the second matrix to generate afirst nonlinear correction function for a first location on the touchsensor surface; write this first nonlinear correction function to afirst position in the force compensation map; and then repeat thisprocess for each other position in the first and second matrices tocomplete the force compensation map.

In another implementation, the calibration system: drives the probeagainst the touch sensor surface at a first reference force during afirst segment of the calibration routine; and drives the probe againstthe touch sensor surface at a second reference force during a secondsegment of the calibration routine. Accordingly, the touch sensorimplement methods and techniques described above to: capture a first setof touch images during the first segment of the calibration routine;generate a first response map based on this first set of touch images;capture a second set of touch images during the second segment of thecalibration routine; and generate a second response map based on thissecond set of touch images. The touch sensor (or the calibration system,the remote computer system) then: extracts a first uncorrected forcemagnitude from a first position in the first response map; pairs thefirst uncorrected force with the first reference force to define a firstreference point; extracts a second uncorrected force magnitude from asecond position in the second response map; pairs the second uncorrectedforce with the second reference force to define a second referencepoint; generates a baseline reference point containing a null referenceforce and a baseline force read from a first sense electrode (or firstcluster of sense electrodes) adjacent a first location on the touchsensor surface when no input is applied to the touch sensor surface;implement regression techniques to calculate a first best-fit function(e.g., a quadratic function) that intersects the first, second, andbaseline reference points and thus represents a relationship betweenuncorrected force magnitudes detected at the first location and the trueforce magnitude applied to the first location over a range of appliedforce magnitudes; and stores the first best-fit function at a firstposition in the force compensation map. The touch sensor can then repeatthis process for each other pixel location contained in the first andsecond response maps to complete the force compensation map.

In this variation, the calibration system can also sweep the probeacross the touch sensor surface at additional reference forces, and thetouch sensor (or the calibration system, the remote computer system) canimplement similar methods and techniques to generate nonlinearcorrection functions based on additional reference forces andcorresponding uncorrected force magnitudes detected on the touch sensorsurface during the calibration routine.

Then, during operation, the touch sensor can implement methods andtechniques described above to: generate a touch image representinguncorrected force magnitudes detected across the touch sensor surfaceduring a scan cycle; detect a location of the input based on this touchimage; and calculate an uncorrected total force magnitude of this inputbased on the touch image. The touch sensor can then: retrieve a firstnonlinear correction function from a first position—corresponding to thefirst location—in the force compensation map; and insert the uncorrectedtotal force magnitude of the input into the nonlinear correctionfunction to calculate a corrected total force magnitude of the input.The touch sensor can also register a selection input at the firstlocation in response to the corrected total force magnitude exceeding apredefined target selection force (which may differ from the first andsecond reference forces described above).

1.7.1 Interpolation

As described above, the calibration system can execute a calibrationpath that traverses only a subset of the drive electrode and senseelectrode pairs in the sensor array. Accordingly, the touch sensor canimplement the foregoing methods and techniques to calculate a sparseforce compensation map that contains nonlinear correction functionscalculated for this subset of drive electrode and sense electrode pairsbased on touch images captured during the calibration routine. The touchsensor can then: interpolate between these nonlinear correctionfunctions to derive nonlinear correction functions for the remainingdrive electrode and sense electrode pairs in sensor array; and compilethese derived and interpolated nonlinear correction functions into onecomplete (or “dense”) force compensation map.

1.8 Multiple Calibration Routines for Different Input Types

In one variation, the calibration system: selects (or “loads”) a firstprobe of a first input type (e.g., a soft silicone depressor defining ageometry approximating an adult human index finger); depresses the firstprobe against the touch sensor surface at a first target selection forceassociated with the first input type (e.g., 1.68 Newtons forfinger-based selection inputs; and sweeps the first probe across thetouch sensor surface during a first segment of the calibration routine.The touch sensor: captures a first set of touch images during the firstsegment of the calibration routine; and generates a first forcecompensation map for the first input type, as described above.

The calibration system then: selects a second probe of a second inputtype (e.g., a rigid silicone depressor including a tapered tip geometryapproximating a writing stylus); depresses the second probe against thetouch sensor surface at a second target selection force associated withthe second input type (e.g., 2.04 Newtons for stylus-based selectioninputs; and sweeps the second probe across the touch sensor surfaceduring a second segment of the calibration routine. The touch sensor:captures a second set of touch images during the second segment of thecalibration routine; and generates a second force compensation map forthe second input type, as described above.

Then, during operation, the touch sensor: scans the drive electrode andsense electrode pairs in the sensor array during a scan cycle; capturesa touch image during the scan cycle; detects a first input on the touchsensor surface during the scan cycle based on a cluster of pixels—in thetouch image—that contain force (or voltage, resistance) values thatdiffer from baseline values stored for the corresponding drive electrodeand sense electrode pairs; and derives a first location and an area ofthe input from the cluster of pixels. The touch sensor can also:calculate a size characteristic (e.g., a diameter, a maximum width, aratio of maximum width to minimum width) based on the area of the input;retrieve a first range of size characteristics common to the first inputtype (e.g., a stored range of diameters, maximum widths, or ratios ofmaximum width to minimum width common to adult human index finger);retrieve a second range of size characteristics common to the secondinput type (e.g., a stored range of diameters, maximum widths, or ratiosof maximum width to minimum width common to writing styluses); andidentify the input as one of the first and second input types based onproximity of the size characteristic of the input to the range of sizecharacteristics common to the first and second input types.

Additionally or alternatively, the touch sensor can: derive a forceprofile characteristic (e.g., a peak force, a force slope from theperimeter of the input to the center or peak force within the inputarea, a ratio of minimum to maximum forces within the input) based onthe area of the input; retrieve a first range of force profilecharacteristics common to the first input type (e.g., a stored range ofpeak forces, force slopes across input areas, or ratios of minimum tomaximum forces within input areas common to adult human index finger);retrieve a second range of size characteristics common to the secondinput type (e.g., a stored range of peak forces, force slopes acrossinput areas, or ratios of minimum to maximum forces within input areascommon to writing styluses); and identify the input as one of the firstand second input types based on proximity of the force profilecharacteristic of the input to the range of force profilecharacteristics common to the first and second input types.

Accordingly, in response to identifying the input as of the first inputtype or exhibiting size and/or force profile characteristics moresimilar to the first input type, the touch sensor can: load the firstforce compensation map; implement methods and techniques described aboveto calculate a corrected total force magnitude of the input based on theset of pixels and the first force compensation map; and register theinput as a selection input of the first input type at the first locationon the touch sensor surface based on uncorrected force magnitudescontained in the set of pixels, the first force compensation map, andthe first target selection force assigned to the first input type.Similarly, in response to identifying the input as of the second inputtype or exhibiting size characteristics more similar to the second inputtype, the touch sensor can: load the second force compensation map;implement methods and techniques described above to calculate acorrected total force magnitude of the input based on the set of pixelsand the second force compensation map; and register the input as aselection input of the second input type at the first location on thetouch sensor surface based on uncorrected force magnitudes contained inthe set of pixels, the second force compensation map, and the secondtarget selection force assigned to the second input type.

Therefore, in this implementation, the calibration system and the touchsensor can cooperate to calibrate force compensation maps to differentinput types that exhibit different spatial characteristics and/or forcedistribution profiles on the touch sensor surface. The touch sensor canthen selectively apply these force compensation maps based on spatialcharacteristics and/or force distribution profiles of inputs detected onthe touch sensor surface during operation.

1.9 Deflection Spacers

In one variation shown in FIG. 6, the touch sensor includes a controllerand an array of discrete (e.g., discontinuous) pressure sensor elementsarranged beneath the touch sensor surface, each including: a driveelectrode and sense electrode pair (e.g., a pair of interdigitatedelectrodes) formed on a substrate (e.g., a common PCB that spans thearray of discrete pressure sensors); a force-sensitive layer arrangedover the drive electrode and sense electrode pair; a deflection spacer(e.g., a silicone pad) or a spring that couples the discrete pressuresensor and the substrate to a chassis of an electronic device.

In this variation, the touch sensor can further include a capacitivetouch sensor subsystem arranged across the substrate below the touchsensor surface. Accordingly, during a scan cycle, the controller can:sample the capacitive touch sensor subsystem to detect locations (andinput areas, input sizes, input geometries, etc.) of inputs on the touchsensor surface; and sample the discrete pressure sensor elements todetect force magnitudes carried from regions of the touch sensor surfaceinto the chassis.

In one implementation, in this variation: the substrate can define a3.5-inch by 4.5-inch area; the touch sensor surface can be arranged overa top layer of the substrate to form 3.5-inch by 4.5-inch active inputarea; each pressure sensor can include a 0.25-inch-diameterforce-sensitive layer coupled to a drive electrode and sense electrodepair spanning 0.25-inch-diameter region on a bottom layer of thesubstrate; and the touch sensor can include ten pressure sensorssupporting the perimeter of the substrate on the chassis of thecomputing device. Thus, when an input is applied to the touch sensorsurface, the controller can: detect the location (and input area, inputsize, input geometry, etc.) of the input on the touch sensor surfacebased on capacitance values read from the capacitive touch sensorsubsystem; and calculate a distribution of the total force magnitude ofthis input carried by each of the ten pressure sensors from the touchsensor surface into the chassis.

1.9.1 Calibration Routine

In this variation, the calibration system can implement methods andtechniques similar to those described above to: depress the probeagainst the touch sensor surface with a target selection force or otherreference force; and then draw the probe across the touch sensor surfaceduring a calibration routine.

During the calibration routine, the touch sensor can: read capacitancevalues from the capacitive touch sensor subsystem; read values (e.g.,voltages, resistances) representing uncorrected force magnitudes fromthe pressure sensors; fuse these capacitance and pressure sensor datainto a touch image representing locations and uncorrected forcemagnitudes of inputs on the touch sensor during a scan cycle; and repeatthis process for subsequent scan cycles during the calibration routine.The touch sensor can then implement methods and techniques describedabove to compile the touch images into a response map that representsdistributions of uncorrected force magnitudes carried by the smallnumber of pressure sensors as a function of application of the targetselection force (or reference force) across a large number of locationson the touch sensor surface. The touch sensor can then generate a forcecompensation map based on this response map, as described above.

For example, the touch sensor can: capture a capacitance imagerepresenting a location of the probe applied to the touch sensor surfaceby the calibration system during a scan cycle within the calibrationroutine; capture a force image representing a distribution of forcescarried by the set of pressure sensors during this scan cycle; calculatean uncorrected total force magnitude of an input at the location on thetouch sensor surface based on a combination (e.g., a sum) of forces inthe distribution of forces represented in the force image; and generatea touch image based on the capacitance image and the uncorrected totalforce magnitude, such as by labeling the input represented in thecapacitance image with the uncorrected total force magnitude.

Then, for each touch image in this sequence of touch images, the touchsensor can: identify a pixel in the response map that corresponds to alocation of the probe—applied to the touch sensor surface by thecalibration system during the calibration routine—represented in thetouch image; and write the uncorrected total force magnitude from thetouch image to this pixel in the response map. The touch sensor can thenstore uncorrected total force magnitudes contained in pixels in theresponse map as threshold forces for detecting selection inputs at thetarget selection force—at corresponding locations on the touch sensorsurface—in the force compensation map, as described above.

Alternatively, the touch sensor can implement methods and techniquesdescribed above to generate a force compensation map containing offsetforces, scalar coefficients, or nonlinear correction functions based ontouch images captured during the calibration routine.

The touch sensor can then implement methods and techniques describedabove to normalize, register, and respond to inputs on the touch sensorsurface during operation based on this force compensation map.

2. Second Method

As shown in FIG. 5, a second method S200 for calibrating a touch sensorincludes: at each location in a set of locations on a surface of a touchsensor, receiving a calibration force of a predefined magnitude at thelocation in Block S210; sampling a set of resistance values from anarray of drive electrode and sense electrode pairs in the touch sensorin Block S212; transforming the set of resistance values into a forcedistribution across the surface of the touch sensor in Block S214;calculating a local force response of the touch sensor to thecalibration force based on the force distribution and the location inBlock S216; generating a normalized force response map representingvariations in local force response across the surface of the touchsensor based on the local force response at each location in the set oflocations and the magnitude of the calibration force in Block S220; andstoring a force compensation map representing an inverse of thenormalized force response map in a controller of the touch sensor inBlock S230.

2.1 Calibration Routine

Generally, according to the second method S200, the touch sensor isconfigured to sequentially receive (e.g., experience, undergo)controlled applications of input forces defining a predefinedcalibration magnitude (or “calibration forces) at a set of discretelocations on the touch sensor surface during a calibration cycle. Forexample, the calibration system—in cooperation with the touch sensor—candrive the actuation subsystem and the attached probe to apply a sequenceof calibration forces over the touch sensor surface. Concurrent witheach application of the calibration force, the controller within thetouch sensor can: sequentially drive each column of drive electrodes inthe array of drive electrode and sense electrode pairs at a referencepotential; sequentially sample resistance values between drive electrodeand sense electrode pairs at corresponding columns of sense electrodes;transform each resistance value (or change in resistance) into a forcemagnitude corresponding to the location of each drive electrode andsense electrode pair; and aggregate these force magnitudes into a forceimage representing a force distribution across the array of driveelectrode and sense electrode pairs. In general, the calibration systemdrives the actuation subsystem at a frequency that is significantlylower than the scan frequency of the touch sensor (e.g., drive thecalibration system at 1 Hz but scan the touch sensor at 50 Hz), enablingthe touch sensor to generate (e.g., capture) and store a complete forceimage representing the touch sensor output responsive to eachapplication of the calibration force.

Blocks of the second method S200 further recite: calculating a localforce response of the touch sensor to the calibration force based on theforce distribution and the location at Block S216. Generally, thecontroller is configured to: analyze a force image (e.g., forcedistribution) generated in response to application of a calibrationforce to the touch sensor surface; calculate a total force magnitudeand/or a location and a magnitude of a global maximum in a forcedistribution across the array of drive electrode and sense electrodepairs based on the force image; and associate and/or store the totalforce magnitude and/or the location and magnitude of the global maximumas a local force response of the touch sensor to application of thecalibration force at a corresponding location on the touch sensorsurface. For example, the controller can integrate the forcedistribution (e.g., a three-dimensional Gaussian distribution centeredaround the location of the calibration input) to derive (e.g.,calculate) the total force magnitude measured by the touch sensor inresponse to the calibration input. Additionally and/or alternatively,the controller can differentiate the force distribution to derive thelocation of a global maximum. The controller can then store the totalforce magnitude, the location of the global force maximum and/or or thevalue of the global force maximum as indicators of the touch sensor'slocal force response (e.g., local sensitivity, local output) in responseto application of the calibration force at an associated location on thetouch sensor surface.

The controller is configured to sequentially and/or concurrently executethis process for any number of calibration inputs to the touch sensorsurface during a calibration cycle, thereby enabling the controller tocalculate local force responses (and variations between local forceresponses) of the touch sensor at any number of discrete locations onthe touch sensor surface.

Blocks of the second method S200 further recite: generating a correctedforce response map representing variations in local force responseacross the surface of the touch sensor based on the magnitude of thecalibration force and the local force response at each location in theset of locations at Block S220. Generally, the controller is configuredto: aggregate local force responses or indicators of local forceresponses calculated for each calibration location; and generate a forcecompensation map (e.g., a function, an image, a lookup table, a matrix)between locations on the touch sensor surface and the observed (e.g.,measured, calculated) and/or expected force responses at theselocations. In one implementation, the controller can generate acontinuous map (e.g., a three-dimensional curve, an image) betweenlocation on the touch sensor surface and expected force response (e.g.,expected force output) of the touch sensor based on observed local forceresponses at a set of calibration locations. More specifically, thecontroller can: generate a surface orthogonal to the force axisrepresenting a constant force value across the touch sensor surface(e.g., the magnitude of the calibration force); sequentially deform(e.g., pull up, pull down) the surface at each calibration location suchthat the force magnitude (e.g., height) of the surface corresponds tothe observed force response of the touch sensor at that location; andcorrect the surface based on the magnitude of the calibration force(e.g., by subtracting out the magnitude of the calibration force). Thus,the controller can interpolate calibration data into a continuous mapbetween locations on the touch sensor surface and correspondingdifferences between observed and expected force output values, therebygenerating a mathematical representation of local variations (e.g.,differences, inconsistencies) in the touch sensor's force sensitivityacross the touch sensor surface.

For example, the calibration system can implement a calibration forceequal to a target “click” force of 160 g. In this example, applicationof the calibration force at a first location (x₁, y₁) on the touchsensor surface may yield a local force response (e.g., total forcemagnitude measured by the touch sensor) of 170 g, while application ofthe calibration force at a second location (x₂, y₂) on the touch sensorsurface may yield a local force response of 150 g. The controller cantherefore generate a surface in F(x, y) that is initially equal to theforce magnitude (e.g., value) of the calibration force (e.g., a “click”force of 160 g) at all (x, y) locations. Subsequently, the controllercan deform (e.g., transform) the surface to equal 170 g at (x₁, y₁) by“pulling up” the surface about (x₁, y₁) while maintaining continuity ofthe surface. The controller can further: deform the surface to equal 150g at (x₂, y₂) by “pulling down” the surface about (x₂, y₂); and repeatthis process for other local force responses recorded at eachcalibration location.

The controller can then vertically translate the surface in order tocorrect the surface according to the magnitude of the calibration force(e.g., by subtracting 160 g from each (x, y, F) value). The resultingsurface is therefore equal to the difference between an observed andexpected force response (e.g., force output) of the touch sensor to thecalibration force at each calibration location (e.g., +10 g at (x₁, y₁),−10 g at (x₂, y₂)) and is roughly interpolated (e.g., continuous)between the set of calibration locations, thereby yielding a map (e.g.,image) of observed and/or expected local variations in the forcesensitivity of the touch sensor. The controller can further scale valuesof the (e.g., corrected) force response map proportional to themagnitude of the calibration force.

Blocks of the second method S200 further recite: storing an inverse ofthe corrected force response map as a force compensation map in acontroller of the touch sensor at Block S240. Generally, the controlleris configured: to generate a force compensation map (e.g., a forcecompensation map) by inverting the force response map relative to theforce magnitude of calibration inputs and store the force compensationmap generated based on these calibration inputs (e.g., according to themagnitude of calibration input). For example, the controller can inverta corrected force response image (e.g., derived at Block S220) over the(x, y) plane in order to generate a force compensation map defining ascaling value or scaling factor for each (x, y) location based onexpected differences in force sensitivity of the touch sensor across thetouch sensor surface (e.g., based on calibration data). Thus, thecontroller can generate and store a force compensation map (e.g., acontinuous image, a matrix) such that the local force response (e.g.,total force magnitude) registered by the touch sensor, when scaledaccording to the force compensation map, is equal to or approximatelyequal to the magnitude of the calibration force at each sampledcalibration location.

While the second method S200 defines a calibration protocol forcalibration inputs of a single force magnitude, the touch sensor can beconfigured to—in cooperation with the calibration system—sequentially orconcurrently execute additional instances of the second method S200 forany number of other calibration forces (e.g., 500 g, 60 g, 500 g) inorder to profile local variations in the force sensitivity of the touchsensor across a wide range of input forces, thereby enabling the touchsensor to accurately scale force outputs according to these variations.

2.2 Force Compensation

Generally, during detection and characterization of subsequent touchinputs (e.g., by a user), the controller is configured to: determine alocation of an input on the touch sensor surface; access a forcecompensation map and/or a value of the force compensation map associatedwith the location of the input; and modify a force magnitude valueand/or a force distribution measured by the touch sensor based on theforce compensation map and/or the value of the force compensation map.More specifically, the controller can execute a scan cycle to sampleresistance values from pressure sensor elements in the touch sensor andtransform these resistance values into an input force distribution(e.g., associated with an input applied over the touch sensor surface).The controller can then calculate a location of the input based on theforce distribution (e.g., the location of a global or local maximum inapplied force). In one implementation, the controller can subsequentlyand/or concurrently transform the input force distribution according tothe force compensation map (e.g., by composing the input forcedistribution with the force compensation map, by generating asuperposition of the input force distribution and the force compensationmap) and output a touch image that includes the transformed forcedistribution and the location of the input. Additionally and/oralternatively, the controller can: calculate a total force magnitude ofthe input based on the input force distribution; access a value of theforce compensation map at the location of the input; and output aweighted (e.g., scaled, corrected) force magnitude based on thecalculated total force magnitude and the value of the force compensationmap.

Thus, the controller can scale the force magnitude and/or forcedistribution output by the touch sensor in real-time according to astored force compensation map in order to: control for measuredvariations in force sensitivity between regions and/or locations on thetouch sensor; reduce the effects of these variations on force magnitudesmeasured by the touch sensor; improve the consistency of haptic feedbackcontrols relying on measured force magnitudes; and improve theconsistency of force-sensitive command functions executed by anelectronic device in response to touch inputs.

3. Third Method

As shown in FIG. 6, a third method S300 for calibrating the touch sensorincludes: for each calibration location in a set of calibrationlocations on a surface of the touch sensor, receiving a calibrationinput of a predefined force magnitude at the calibration location atBlock S310; sampling a set of resistance values between drive electrodeand sense electrode pairs in a set of pressure sensor elements withinthe touch sensor at Block S312; transforming the set of resistancevalues into a force response magnitude at Block S314; calculating ascaling factor corresponding to the calibration location based on adifference between the force response magnitude and the predefined forcemagnitude at Block S316; generating a force compensation map based onthe set of calibration locations and a set of corresponding scalingfactors at S320; and storing the force compensation map in a controllerat Block S330.

31. Applications

Generally, the third method S300 can be executed by the touch sensor—inconjunction with a calibration system—to calibrate input forcethresholds across an area of the touch sensor, thereby compensating forstructural variations within the touch sensor in order to interpolateforce magnitudes between locations of discrete pressure sensor elementsand achieve accurate and repeatable responses to inputs across the touchsensor—and thereby a population of touch sensors—as a function ofapplied force.

In particular, the touch sensor includes an array of discrete (e.g.,discontinuous) pressure sensor elements (hereinafter the “pressuresensor array”)—each including a drive electrode and sense electrode pairand a force sensitive material that exhibits changes in local bulkresistance responsive to applied force—that mechanically support andlocate the tactile surface within a chassis of an electronic device. Thecontroller can thus: read a resistance value from each pressure sensorelement during a scan cycle; transform these resistance values intoforce magnitude components recorded at each pressure sensor element; andcalculate a total magnitude of a force applied to the tactile surfaceand transferred into these pressure sensor elements based on these forcemagnitude components. However, because the touch sensor includes a smallnumber of pressure sensor elements (e.g., twelve pressure sensorelements arranged beneath a 3-inch by 5-inch touch sensor surface), thetouch sensor captures force data at a relatively low resolution. Thus,the touch sensor can execute a calibration cycle according to the thirdmethod S300 in order to: record resistance values across drive electrodeand sense electrode pairs in each pressure sensor element responsive toinputs of controlled (e.g., known, predefined) calibration forcemagnitude at a set of known locations on the touch sensor surface; storeforce magnitude components experienced by each pressure sensor elementbased on these resistance values; and store a force compensation map,including scaling factors, that represents relationships between actualforce magnitudes of inputs applied to the touch sensor surface and forcemagnitudes of these inputs measured by the touch sensor for each knownlocation. Later, during operation, the controller can transformlow-resolution force data sampled at the set of pressure sensor elementsinto a higher resolution force distribution across the tactile surfaceindicating the location of an input based on this calibration data,known locations of the pressure sensor elements, and known dynamics ofthe tactile surface. The system can therefore leverage calibration datacaptured at a large number of discrete locations during a calibrationcycle to up-sample lower-resolution force data captured by the array ofdiscrete pressure sensor elements.

Furthermore, because the touch sensor surface is supported only at asmall number of locations, the touch sensor surface can exhibitdeformations (e.g., warping, sagging) in particular locations undersmall or even net zero forces such that application of a particularforce magnitude to one area of the touch sensor surface yields adifferent force measurement than application of the force magnitude to adifferent area of the touch sensor surface. During operation, thecontroller can therefore access the force compensation map whendetecting and characterizing subsequent touch inputs (e.g., by a user)and scale the resulting force outputs of the second touch sensor in realtime in accordance with known and/or calculated abnormalities in theforce sensitivity of the touch sensor at the input location. The thirdmethod S300 can therefore: reduce variations in the touch sensor outputbetween locations on the touch sensor surface; increase the accuracy ofthe force values and/or force distributions measured (e.g., calculated)by the second touch sensor; improve the consistency of force-dependenthaptic feedback issued by the second touch sensor; and improve theconsistency of force-dependent command functions executed by anelectronic device cooperating with the second touch sensor in responseto touch inputs. By enabling the touch sensor to correct and/or scaleforce measurements in software, the third method S300 allows the touchsensor to accurately and consistently measure forces around particular(e.g., calibrated) input force thresholds with a small number ofpressure sensitive elements, thereby reducing manufacturing costs.

3.2 Touch Sensor

As shown in FIG. 6, in this variation, the touch sensor can include acontroller and a set of pressure sensor elements arranged beneath atouch sensor surface at a set of discrete (e.g., discontinuous)locations. Each pressure sensor element includes: an interdigitateddrive electrode and sense electrode pair (e.g., a point sensor) formedon a substrate (e.g., a fiberglass PCB layer); a deposit and/or layer offorce-sensitive material bonded (e.g., affixed) to the substrate aboutits area; and a deflection spacer (e.g., a soft or ultra-soft siliconepad) that can be bonded to the chassis of an electronic device. Inparticular, the distance between each pressure sensor element in thetouch sensor can be substantial relative to the dimensions of the touchsensor surface. For example, the touch sensor can include a set ofdiscrete pressure sensor elements arranged beneath a 3-inch by 5-inchtactile surface at 1.5 inch lateral and longitudinal pitch distances,yielding a two-by-three grid array of pressure sensor elements under thetouch sensor surface. In one variation, the system includes ahigh-resolution capacitive sensor array that is integrated into orarranged under the touch sensor surface.

In this configuration, the set of pressure sensor elements mechanicallysupport the touch sensor surface and constrain the touch sensor surfaceagainst a chassis (e.g., a chassis of an electronic device) such thatforces applied over the touch sensor compress and/or displace theforce-sensitive material in the set of pressure sensor elements. Thecontroller is therefore configured to sample resistance values across adrive electrode and sense electrode pair in each pressure sensor element(e.g., during a scan cycle) and to transform these resistance valuesinto a force magnitude of an input applied over the touch sensorsurface. In one variation, the controller is further configured tosubsequently and/or concurrently sample a (much larger) set ofcapacitance values from the capacitive sensor array and transform theset of capacitance values into a location and/or size of the input onthe touch sensor surface.

The second touch sensor can further cooperate with a calibration system(e.g., as described above with respect to the touch sensor) in order toexecute a calibration cycle, such as the third method S300. Inparticular, the calibration system is configured to cooperate with aninternal or external controller and with the touch sensor to apply asequence of calibration inputs of a controlled (e.g., predefined) forcemagnitude over a set of locations (e.g., over a small area such as onesquare centimeter) on the touch sensor surface during a calibrationcycle.

3.3. Calibration

Blocks of the third method S300 recite: for each calibration location ina set of calibration locations on a surface of the touch sensor,applying a calibration input of a predefined force magnitude at thecalibration location at Block S310; sampling a set of resistance valuesbetween drive electrode and sense electrode pairs in a set of pressuresensor elements within the touch sensor at Block S312; and transformingthe set of resistance values into a force response magnitude at BlockS314. Generally, the second touch sensor is configured to receivecontrolled input forces of a predefined (e.g., fixed) calibrationmagnitude (or “calibration force”) over a set of discrete locations onthe touch sensor surface during a calibration cycle (e.g., applied by aprobe on the calibration system). Concurrent with each application ofthe calibration force, the controller within the touch sensor can: drivea drive electrode in a pressure sensor element to a reference potential;sample a resistance value between a drive electrode and sense electrodepair in the pressure sensor element at a corresponding sense electrode;and transform the resistance value (or change in resistance) into aforce magnitude component corresponding to the location of the pressuresensor element (e.g., based on a known model or a derived correlation).Concurrently and/or subsequently, the controller can repeat this processfor each pressure sensor element in the touch sensor in order to sampleforce magnitude components measured at each pressure sensor elementresponsive to application of the calibration force.

Generally, the set of discrete pressure sensor elements constrains thetouch sensor surface such that, in response to a calibration input orother input over the touch sensor surface, a first pressure sensorelement at a first location beneath the touch sensor surface (e.g.,adjacent the input location) may experience a first force magnitudecomponent, while a second pressure sensor element at a differentlocation may experience a second, substantially lower force magnitudecomponent. Thus, the controller is configured to aggregate forcemagnitude components measured at each pressure sensor element in thetouch sensor during a scan cycle and calculate a force responsemagnitude (e.g., total force magnitude response magnitude) of the touchsensor to an input (e.g., a calibration input) on the touch sensorsurface based on a sum of force magnitude components measured at eachpressure sensor element.

Blocks of the third method S300 further recite: calculating a scalingfactor corresponding to the calibration location based on a differencebetween the force response magnitude and the predefined force magnitudeat Block S316. Generally, the controller is configured to calculate adifference between the force response magnitude output by the touchsensor and the magnitude of the calibration force applied at a locationon the touch sensor surface; correct the difference based on themagnitude of the calibration force; and invert the weighted differenceas a scaling factor representing a difference between the actual andexpected force responses of the touch sensor at the location. Forexample, if the calibration system applies a “click” force of 160 g at alocation (x₁, y₁) on the touch sensor surface and measures a forceresponse magnitude of 170 g, the controller may calculate a differencebetween the two force magnitudes, divide the difference by 160 g, andinvert the result, yielding a scaling factor of 16/17 at the location(x₁, y₁).

During a calibration cycle, the controller can sequentially orconcurrently repeat this process for each pressure sensor element in thetouch sensor, thereby calculating a set of force response magnitudes(e.g., force sensitivities, force outputs) of the touch sensor andassociated scaling factors corresponding to applications of thecalibration force at each sampled location on the touch sensor surface.Additionally, the controller can store the individual force magnitudecomponents measured at each pressure sensor element responsive to eachcalibration input.

Blocks of the third method S300 further recite: generating a forcecompensation map based on the set of calibration locations and a set ofcorresponding scaling factors at Block S320; and storing the forcecompensation map in a controller at Block S330. Generally, thecontroller is configured to aggregate scaling factors calculated foreach calibration location on the touch sensor surface into a look-uptable, a matrix, or other mapping, thereby generating a map betweenlocations on the touch sensor surface, measured errors in force outputof the touch sensor at each location, and corresponding scaling factors.The controller can then store the calibration, access scaling factorstherein, and scale up or scale down a force output according to thescaling factor when detecting and characterizing subsequent inputs tothe touch sensor surface.

While the third method S300 defines a calibration protocol forcalibration inputs of a single force magnitude, the touch sensor cancooperate with the calibration system to sequentially or concurrentlyexecute additional instances of the third method S300 for any number ofother calibration forces (e.g., 5 g, 60 g, 500 b) in order to profilelocal variations in the force sensitivity of the touch sensor across awide range of input forces, thereby enabling the touch sensor toaccurately scale force outputs according to these variations.

In one variation, prior to executing the third method S300, the touchsensor can—in cooperation with the calibration system—individuallycalibrate each pressure sensor element. For example, the calibrationsystem can sequentially apply a calibration input of a predefined (e.g.,fixed) force magnitude to the back side of the touch sensor (e.g., aside of the touch sensor opposite the touch sensor surface) at thelocation of each pressure sensor element. Thus, the calibration systemcan sequentially compress each pressure sensor element against thetactile surface such that the calibration force is exerted on a singlepressure element while the force on other pressure sensor elements iszero. The controller can then: sequentially execute scan cycles tocalculate an output force magnitude based on a resistance value sampledat a drive electrode and sense electrode pair for each individualpressure sensor element; calculate a scaling factor for the eachpressure sensor element based on differences between the output forcemagnitudes and the force magnitude of the calibration input; and storescaling factors for each pressure sensor element. The controller canthen scale, correct, or otherwise modify force magnitude componentsmeasured at each pressure sensor element based on these scaling factorsin order to both improve the accuracy of scaling factors calculatedduring a calibration protocol and improve the accuracy and consistencyof touch sensor outputs in user-facing applications.

3.4 Force Compensation

Generally, during detection and characterization of subsequent touchinputs (e.g., by a user), the controller is configured to: determine alocation of an input on the touch sensor surface; access a scalingfactor associated with the location from a stored force compensationmap; and modify a force output value of the touch sensor based on thescaling factor. More specifically, the controller can execute a scancycle to sample resistance values from pressure sensor elements in thetouch sensor and transform these resistance values into a forcemagnitude associated with an input applied over the touch sensorsurface. In one variation, the controller can scan a set of capacitancevalues from the capacitive sensor array and calculate a location of aninput on the tactile surface based on the set of capacitance values. Inanother variation, the controller can calculate a location of the inputby matching the relative values of force magnitude components measuredat each pressure sensor element to a similar set of force magnitudecomponents stored in response to a calibration input at the location.The controller can then: access a scaling factor associated with thecalculated location from a stored force compensation map (e.g., alook-up table, a matrix); weight (e.g., scale, correct) the forcemagnitude based on the scaling factor associated with the inputlocation; and output the weighted force magnitude and the location ofthe input. For example, if the controller detects an input at location(x₁, y₁) based on a capacitance image and an input force magnitude of170 g, the controller can access the corresponding scaling factor 16/17from a stored look-up table or matrix and multiply the input forcemagnitude by the scaling factor to yield an output force magnitude of160 g, thereby compensating for the increased force sensitivity at (x₁,y₁) measured during the calibration cycle.

Thus, the controller can adjust the force magnitude output by the touchsensor in real-time according to a force compensation map in order to:control for measured variations in force sensitivity between regionsand/or locations on the touch sensor; reduce the effects of thesevariations on force magnitudes measured by the touch sensor; improve theconsistency of haptic feedback controls relying on measured forcemagnitudes; and improve the consistency of force-sensitive commandfunctions executed by an electronic device in response to touch inputs.

The systems and methods described herein can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions can be executed by computer-executable componentsintegrated with the application, applet, host, server, network, website,communication service, communication interface,hardware/firmware/software elements of a user computer or mobile device,wristband, smartphone, or any suitable combination thereof. Othersystems and methods of the embodiment can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated bycomputer-executable components integrated with apparatuses and networksof the type described above. The computer-readable medium can be storedon any suitable computer readable media such as RAMs, ROMs, flashmemory, EEPROMs, optical devices (CD or DVD), hard drives, floppydrives, or any suitable device. The computer-executable component can bea processor but any suitable dedicated hardware device can(alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

I claim:
 1. A method comprising: at a calibration system during acalibration routine, applying a probe, at a target selection force, to asequence of locations on a touch sensor surface of a touch sensor; atthe touch sensor, capturing a sequence of touch images during thecalibration routine; fusing the sequence of touch images into a responsemap representing magnitudes of forces detected on the touch sensorsurface by the touch sensor; generating a force compensation mapdefining threshold forces for detecting selections at the targetselection force on the touch sensor surface based on the response map;and during operation, at the touch sensor: reading a set of force valuesfrom the touch sensor; detecting a first input at a first location onthe touch sensor surface; detecting a first force magnitude of the firstinput based on the set of force values; and in response to the firstforce magnitude exceeding a first threshold force assigned to the firstlocation by the force compensation map, registering a first selection atthe first location on the touch sensor surface.
 2. The method of claim1: wherein capturing the sequence of touch images comprises capturingthe sequence of touch images, each touch image in the sequence of touchimages comprising an array of pixels containing values representingforce magnitudes carried by an array of drive electrode and senseelectrode pairs during capture of the touch image; wherein fusing thesequence of touch images into the response map comprises: initializingthe response map; and for each touch image in the sequence of touchimages: detecting an input on the touch sensor surface based on acluster of pixels in the touch image containing values deviating fromcorresponding baseline values; calculating a center of the input basedon the cluster of pixels; calculating a detected total force magnitudeof the input based on a combination of values contained in the clusterof pixels; and storing the detected total force magnitude in a pixel, inthe response map, nearest the center of the input; and whereingenerating the force compensation map comprises storing detected totalforce magnitudes contained in pixels in the response map as thresholdforces for detecting selections at the target selection force, atcorresponding locations on the touch sensor surface, in the forcecompensation map.
 3. The method of claim 2: wherein detecting the firstinput at the first location comprises: detecting the first input on thetouch sensor surface based on a first cluster of pixels containingvalues deviating from corresponding baseline values; and calculating acentroid of the first input, at the first location, based on the firstcluster of pixels; wherein detecting the first force magnitude of thefirst input comprises calculating the first force magnitude of the firstinput based on a first combination of values contained in the firstcluster of pixels; and further comprising, in response to registeringthe first selection at the first location on the touch sensor surface,executing a haptic feedback cycle to vibrate the touch sensor surface.4. The method of claim 1: wherein capturing the sequence of touch imagescomprises, at the touch sensor, for each touch image in the sequence oftouch images: driving a set of drive electrodes in the touch sensor to areference voltage; reading a set of sense voltages from a set of senseelectrodes in the touch sensor, each sense electrode in the set of senseelectrodes passing a voltage proportional to the reference voltage and alocal contact resistance of a force-sensitive layer against the senseelectrode, the force-sensitive layer exhibiting changes in local contactresistance against the sense electrode as a function of force applied tothe touch sensor surface; and compiling the set of sense voltages intothe touch image; wherein fusing the sequence of touch images into theresponse map comprises representing magnitudes of voltages, passed bythe set of sense electrodes responsive to application of the targetselection force on the touch sensor surface during the calibrationroutine, in pixels in the response map corresponding to locations of theset of sense electrodes below the touch sensor surface; and whereingenerating the force compensation map comprises generating the forcecompensation map defining magnitudes of voltages stored in the responsemap as threshold voltages for detecting inputs of force magnitudesgreater than the target selection at corresponding locations on thetouch sensor surface.
 5. The method of claim 1, wherein applying thetarget selection force, to the sequence of locations on the touch sensorsurface during the calibration routine comprises applying the probe, atthe target selection force to the sequence of locations on the touchsensor surface during the calibration routine.
 6. The method of claim 1:wherein applying the target selection force, to the sequence oflocations on the touch sensor surface during the calibration routinecomprises applying the target selection force along a boustrophedonicpath across the touch sensor surface; wherein fusing the sequence oftouch images into the response map comprises: initializing a sparseresponse map; for each touch image in the sequence of touch images:detecting an input on the touch sensor surface represented in a set ofpixels in the touch image; calculating a location of the input based onthe set of pixels in the touch image; calculating a detected total forcemagnitude of the input based on a combination of values contained in theset of pixels; and storing the detected total force magnitude in apixel, in the sparse response map, nearest the location of the input;and interpolating between detected total force magnitudes, representedin pixels in the sparse response map, to generate a dense response maprepresenting predicted total force magnitudes of inputs, at the targetselection force, applied to locations on the touch sensor surfacebetween segments of the boustrophedonic path; and wherein generating theforce compensation map comprises storing detected total force magnitudesand predicted total force magnitudes contained in pixels in the denseresponse map as threshold forces, for detecting inputs of forcemagnitudes greater than the target selection force at correspondinglocations on the touch sensor surface, in the force compensation map. 7.The method of claim 1: wherein capturing the sequence of touch imagesduring the calibration routine comprises, for each touch image in thesequence of touch images: capturing a capacitance image representing alocation of the target selection force applied to the touch sensorsurface, by the calibration system, during a scan cycle; capturing aforce image representing a distribution of forces carried by a set ofpressure sensors, supporting the touch sensor surface, during the scancycle; calculating a detected total force magnitude of an input at thelocation on the touch sensor surface based on a combination of forces inthe distribution of forces represented in the force image; andgenerating the touch image based on the capacitance image and thedetected total force magnitude; wherein fusing the sequence of touchimages into the response map comprises: initializing the response map;and for each touch image in the sequence of touch images: identifying apixel, in the response map, corresponding to a location of the targetselection force, applied to the touch sensor surface by the calibrationsystem, represented in the touch image; and writing a detected totalforce magnitude, stored in the touch image, to the pixel in the responsemap; and wherein generating the force compensation map comprises storingdetected total force magnitudes contained in pixels in the response mapas threshold forces for detecting selections at the target selectionforce, at corresponding locations on the touch sensor surface, in theforce compensation map.
 8. The method of claim 1: further comprising, atthe touch sensor: initiating the calibration routine in response toreceipt of a calibration command from the calibration system; anddownloading a magnitude of the target selection force; whereingenerating the force compensation map comprises, at the touch sensor,generating the force compensation map based on the response map and themagnitude of the target selection force; and further comprising, at thetouch sensor, storing the force compensation map in local memory.
 9. Amethod comprising: at a calibration system during a calibration routine,applying a probe, at a reference force, to a sequence of locations on atouch sensor surface of a touch sensor; at the touch sensor, capturing asequence of touch images during the calibration routine; fusing thesequence of touch images into a response map representing magnitudes offorces detected on the touch sensor surface by the touch sensor;generating a set of correction functions for calibrating forces detectedon the touch sensor surface based on the response map; and duringoperation, at the touch sensor: reading a set of electrical values fromthe touch sensor; detecting a first input at a first location based onthe set of electrical values; detecting a first uncorrected forcemagnitude of the first input based on the set of electrical values; andcalculating a first force magnitude of the first input based on thefirst uncorrected force magnitude and a first correction functionassigned to the first location.
 10. The method of claim 9: whereincapturing the sequence of touch images comprises capturing the sequenceof touch images, each touch image in the sequence of touch imagescomprising an array of pixels containing values representing forcemagnitudes carried by an array of drive electrode and sense electrodepairs during capture of the touch image; wherein fusing the sequence oftouch images into the response map comprises: initializing the responsemap; and for each touch image in the sequence of touch images: detectingan input on the touch sensor surface based on a cluster of pixels in thetouch image containing values deviating from corresponding baselinevalues; calculating a center of the input based on the cluster ofpixels; calculating a detected total force magnitude of the input basedon a combination of values contained in the cluster of pixels; andstoring the detected total force magnitude in a pixel, in the responsemap, nearest the center of the input; and further comprising, generatinga force compensation map comprising, for each pixel in the response map:calculating a force offset between the reference force and a detectedtotal force magnitude stored in the pixel; and writing a correctionfunction based on the force offset to a corresponding position in theforce compensation map.
 11. The method of claim 10: wherein detectingthe first input at the first location on the touch sensor surface basedon the set of electrical values comprises: detecting the first input onthe touch sensor surface based on a first cluster of pixels in the firsttouch image containing values deviating from corresponding baselinevalues; and calculating a centroid of the first input, at the firstlocation, based on the first cluster of pixels; wherein detecting thefirst uncorrected force magnitude of the first input based on the firsttouch image comprises calculating the first uncorrected force magnitudeof the first input based on a first combination of values contained inthe first cluster of pixels; and wherein calculating the first forcemagnitude of the first input comprises calculating the first forcemagnitude of the first input based on a sum of the first uncorrectedforce magnitude and a first force offset assigned to the first locationby the force compensation map.
 12. The method of claim 9: whereincapturing the sequence of touch images comprises capturing the sequenceof touch images, each touch image in the sequence of touch imagescomprising an array of pixels containing values representing forcemagnitudes carried by an array of drive electrode and sense electrodepairs during capture of the touch image; wherein fusing the sequence oftouch images into the response map comprises: initializing the responsemap; and for each touch image in the sequence of touch images: detectingan input on the touch sensor surface based on a cluster of pixels in thetouch image containing values deviating from corresponding baselinevalues; calculating a center of the input based on the cluster ofpixels; calculating a detected total force magnitude of the input basedon a combination of values contained in the cluster of pixels; andstoring the detected total force magnitude in a pixel, in the responsemap, nearest the center of the input; and further comprising, generatinga force compensation map comprising, for each pixel in the response map:calculating a scalar coefficient based on a ratio of the reference forceto a detected total force magnitude stored in the pixel; and writing acorrection function based on the scalar coefficient to a correspondingposition in the force compensation map.
 13. The method of claim 12:wherein detecting the first input at the first location on the touchsensor surface based on the first touch image comprises: detecting thefirst input on the touch sensor surface based on a first cluster ofpixels in the first touch image containing values deviating fromcorresponding baseline values; and calculating a centroid of the firstinput, at the first location, based on the first cluster of pixels;wherein detecting the first uncorrected force magnitude of the firstinput based on the first touch image comprises calculating the firstuncorrected force magnitude of the first input based on a firstcombination of values contained in the first cluster of pixels; andwherein calculating the first force magnitude of the first inputcalculating the first force magnitude of the first input based on aproduct of the first uncorrected force magnitude and a first scalarcoefficient assigned to the first location by the force compensationmap.
 14. The method of claim 9: fusing the sequence of touch images intothe response map comprises: initializing the response map; and for eachtouch image in the sequence of touch images: detecting an input on thetouch sensor surface based on a first cluster of pixels in the touchimage containing values deviating from corresponding baseline values;calculating a center of the input based on the first cluster of pixels;calculating a first detected total force magnitude of the input based ona first combination of values contained in the first cluster of pixels;and storing the first detected total force magnitude in a first pixel,in the response map, nearest the center of the first input; furthercomprising: at the calibration system during a second segment of thecalibration routine, applying a second reference force, to the sequenceof locations on the touch sensor surface; at the touch sensor, capturinga second sequence of touch images representing magnitudes of forcesdetected on the touch sensor surface during the second segment of thecalibration routine; initializing a second response map; and for eachtouch image in the second sequence of touch images: detecting a secondinput on the touch sensor surface based on a second cluster of pixels inthe touch image containing values deviating from corresponding baselinevalues; calculating a center of the second input based on the secondcluster of pixels; calculating a second detected total force magnitudeof the second input based on a second combination of values contained inthe second cluster of pixels; and storing the second detected totalforce magnitude in a pixel, in the second response map, nearest thecenter of the second input; and further comprising, generating a forcecompensation map comprising: for each pixel in the response map,calculating a first ratio of the reference force to a detected totalforce magnitude stored in the pixel; for each pixel in the secondresponse map, calculating a second ratio of the reference force to adetected total force magnitude stored in the pixel; and for each driveelectrode and sense electrode pair, in the touch sensor, represented inthe force compensation map: calculating a nonlinear correction functionbased on the first ratio and the second ratio; and storing the nonlinearcorrection function, assigned to the drive electrode and sense electrodepair, in the force compensation map.
 15. The method of claim 14: whereinapplying the reference force, to the sequence of locations on the touchsensor surface during the calibration routine comprises applying theprobe, at a target click force of approximately 1.68 Newtons, to thesequence of locations on the touch sensor surface during the firstsegment of the calibration routine; and wherein applying the secondreference force, to the sequence of locations on the touch sensorsurface during the calibration routine comprises applying the probe, ata target deep-click force greater than the target click force, to thesequence of locations on the touch sensor surface during the secondsegment of the calibration routine.
 16. The method of claim 9: furthercomprising: at the calibration system during the calibration routine,tracking a sequence of force magnitudes applied to the touch sensorsurface; and generating a ground truth input map representing thesequence of force magnitudes; and further comprising, generating a forcecompensation map based on differences between magnitudes of forcesrepresented in the response map and cospatial forces represented in theground truth input map.
 17. The method of claim 16: further comprising,during an alignment routine: at the calibration system, applying theprobe to a set of target alignment locations on the touch sensorsurface, the set of target alignment locations offset according to analignment constellation within a calibration system coordinate system;and at the touch sensor, capturing a set of alignment imagesrepresenting a set of detected alignment locations detected on the touchsensor surface within a touch sensor coordinate system; furthercomprising: calculating a transform that projects the set of targetalignment locations onto the set of detected alignment locations; andapplying the transform to the ground truth input map to generate analigned ground truth input map; and wherein generating the forcecompensation map comprises generating the force compensation map basedon differences between magnitudes of forces represented in the responsemap and cospatial force magnitudes represented in the aligned groundtruth input map.
 18. A method comprising: at a touch sensor during acalibration routine, capturing a sequence of touch images representingmagnitudes of forces detected on a touch sensor surface duringapplication of a probe, at a reference force, to a sequence of locationson the touch sensor surface; fusing the sequence of touch images into aresponse map representing magnitudes of forces detected on the touchsensor surface by the touch sensor responsive to application of thereference force on the touch sensor surface during the calibrationroutine; interpreting threshold forces for detecting selections at thereference force on the touch sensor surface based on the response map;and during operation, at the touch sensor: reading a set of force valuesfrom a sensor array on the touch sensor; detecting a first input at afirst location on the touch sensor surface; detecting a first forcemagnitude of the first input base on the set of force values; and inresponse the first force magnitude exceeding a first threshold forceassigned to the first location, registering a first selection at thefirst location on the touch sensor surface.
 19. The method of claim 18:wherein applying the reference force, to the sequence of locations onthe touch sensor surface during the calibration routine comprisesapplying the probe, at a target click force of approximately 1.68Newtons, to the sequence of locations on the touch sensor surface duringthe calibration routine; and further comprising, in response toregistering the first selection at the first location on the touchsensor surface, executing a haptic feedback cycle to vibrate the touchsensor surface.
 20. The method of claim 18: wherein fusing the sequenceof touch images into the response map comprises: initializing theresponse map; and for each touch image in the sequence of touch images:detecting an input on the touch sensor surface based on a cluster ofpixels in the touch image containing values deviating from correspondingbaseline values; calculating a center of the input based on the clusterof pixels; calculating a detected total force magnitude of the inputbased on a combination of values contained in the cluster of pixels; andstoring the detected total force magnitude in a pixel, in the responsemap, nearest the center of the input; and further comprising, generatinga force compensation map storing detected total force magnitudescontained in pixels in the response map as threshold forces fordetecting selections at the reference force, at corresponding locationson the touch sensor surface.